/************************************************************
	File:		Player.h
	Author:		Mitchel Mishiev, Keisuke Miyazaki
	Purpose:	CPlayer class controls the player
************************************************************/
#pragma once
#include "entity.h"
#include "../../SGD Wrappers/IListener.h"

class CPlayer : public CEntity, public IListener
{
public:

	CPlayer(void);
	~CPlayer(void);

	virtual void	Update( float fElapsedTime )				override;
	virtual void	Render( void )								override;
	virtual void	HandleCollision( const IEntity* pOther )	override;

	virtual void	HandleEvent(CEvent* pEvent)					override;

	void			Input( float fElapsedTime );

	//Accessor
	int				GetHealth( void )		const	{ return m_nHealth;		}
	int				GetCharge( void )		const	{ return m_nCharge;		}
	int				GetCurrency( void )		const	{ return m_nCurrency;	}
	int				GetWeaponID( void )		const	{ return m_nWeaponID;	}

	int				GetBandages( void )		const	{ return m_nBandages;	}

	bool			IsJumping( void )		const	{ return m_bIsJumping;	}

	//Mutators
	void			SetHealth(int hp) { m_nHealth = hp; }
	void			SetCharge(int cp) { m_nCharge = cp; }
	void			SetCurrency(int soul) { m_nCurrency = soul; }
	void			SetWeaponID(int weapon) { m_nWeaponID = weapon; }
	void			SetBandages(int aid) { m_nBandages = aid; }

	void			StayInBoundaries( void );

	void			English( void );
	void			Japanese( void );

private:
	// Character Properties
	int				m_nHealth;
	int				m_nCharge;
	int				m_nCurrency;
	int				m_nWeaponID;
	int				m_nBandages;

	// Character Assets
	int				m_nImageID;
	int				m_nJumpSfxID;

	// Jumping
	float			m_fJumpTimer;
	bool			m_bIsJumping;

	bool			m_bHasWon;
	bool			m_bHasLost;

	unsigned int	m_unKills;
	

	


};

